const mysql = require('mysql');
const dbConfig = require('./dbConfig');
// 连接数据库
{
    let db = null;
    let pingInterval;
// 如果数据连接出错，则重新连接
    function handleError(err) {
        // console.log(err.stack || err);
        connect();
    }
// 建立数据库连接
    function connect() {
        if (db !== null) {
            db.destroy();
            db = null;
        }
        db = mysql.createConnection(dbConfig.mysql);
        db.connect(function (err) {
            if (err) {
                console.log("error when connecting to db,reConnecting after 2 seconds:", err);
                setTimeout(connect, 2000);
            }
        });
        db.on("error", handleError);
        // 每个小时ping一次数据库，保持数据库连接状态
        clearInterval(pingInterval);
        pingInterval = setInterval(() => {
            console.log('ping...');
            db.ping((err) => {
                if (err) {
                    console.log('ping error: ' + JSON.stringify(err));
                }
            });
        }, 3600000);
    }
    connect();

    function sqlQuery(sql,data,cb) {
         db.query(sql, data,cb);
    }
}
module.exports = {
    sqlQuery
};

